
using System;
using System.Collections.Generic;
using System.Text;


namespace GenTechDataModel
{
    /// <summary>
    /// Tie between event and role and assertion.
    /// </summary>
    /// <remarks>
    /// This data structure is not part of the documented GenTech spec.  They proposed using
    /// an overloaded value field in assertion to point to the role, and storing the event
    /// subject2.  Thie class abstracts that out, so that the this goes into subject2 and
    /// value isn't needed.
    /// </remarks>
    public class GenTechEventRole : GenTechSubject
    {

        private GenTechEvent ev;
        private GenTechEventTypeRole role;

        /// <summary>
        /// Default constructor.
        /// </summary>
        public GenTechEventRole()
        {
        }


        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="ev">The event.</param>
        /// <param name="role">The role.</param>
        public GenTechEventRole(GenTechEvent ev, GenTechEventTypeRole role)
        {
            this.ev = ev;
            this.role = role;
        }


        /// <summary>
        /// The event.
        /// </summary>
        public GenTechEvent Event
        {
            get { return this.ev; }
        }


        /// <summary>
        /// The role.
        /// </summary>
        public GenTechEventTypeRole Role
        {
            get { return this.role; }
        }


    }
}
